1. Field of the Invention
Address Resolution Protocol (ARP) request mirroring can provide a mechanism for synchronizing link-layer adjacency information among network elements. This application can be useful, for example, for internet protocol (IP) routing network elements in a high-availability configuration.
ARP request mirroring can provide a mechanism that enables highly available nodes in standby mode to monitor an ARP request sent from the active node to resolve a peer link address. The standby node can then issue its own ARP request to the target network address to resolve the peer link address.
2. Description of the Related Art
In a typical network, a network element needs link-layer adjacency information to communicate with its neighbors over a broadcast medium. For example, a network element on an Ethernet network must learn its neighbor's media access control (MAC) address to send data to it. Network elements can use an Address Resolution Protocol (ARP) to obtain a neighbor's link-layer address from its network-layer address. The network element that desires information about its neighbor can broadcast an ARP request message. The broadcast ARP request message can contain the neighbor's network address and its own network-layer and link-layer addresses, to all adjacent network elements. The neighbor with the corresponding network address can send an ARP reply message, containing its link-layer address, back to the requestor. The requestor can store the information in an ARP cache. The neighbor may optionally store the requestor's network-layer and link-layer addresses from the request in its own cache, for later use.
Thus, a network element can obtain adjacency information about its neighbor via the ARP protocol in at least two ways:
1) it can receive an ARP request for one of its network addresses from the neighbor. The network element may then add an ARP entry from the neighbor's address information in the request; or
2) it can broadcast an ARP request for the neighbor's network address and receive a reply containing the neighbor's link address.
ARP is currently used by all kinds of network elements, including (but not limited to) servers, routers, network attached storage, security appliances, and the like. The invention described below, thus, can be used in any network environment where ARP is used. Further details about an ARP protocol can be found in “An Ethernet Address Resolution Protocol,” David C. Plummer, RFC 826, November 1982.
Address Resolution Protocol is the name of an Internet Engineering Task Force (IETF) standard that provides an address resolution protocol, and which is described in RFC-826. Address Resolution Protocol enables a network element to determine the link-layer address of a link adjacent network element when only the network address is known.
The network address is typically internet protocol (IP). The Internet Protocol is an IETF standard that provides an internet protocol and has two significant versions, IPv4 and IPv6. The latest IPv4 is described in RFC-791. The latest IPv6 is described in RFC-2460. Internet Protocol is a network layer protocol that provides globally unique addressing across physical networks. An Internet Protocol Address is globally unique address that is used to identify network elements on different networks. The Internet Protocol address format is dependent on the Internet Protocol version.
The link address is typically Ethernet. Ethernet is an Institute of Electrical and Electronics Engineers (IEEE) standard and is described in IEEE 802.3. Ethernet is a frame based network protocol for local area networks and provides a means of uniquely addressing stations on the local area network. An Ethernet address can also be referred to as a Media Access Control (MAC) address. An Ethernet address is globally unique and used to address stations on the same physical network.
A cluster of elements can be used in certain circumstances. A cluster is one or more elements working together, often to provide load balancing and/or high availability of a service. Proxy ARP is a method in which one network element responds to ARP request on behalf of another network element. It is typically used by bridges and gateways to route between networks on different networks without the need for a routing protocol. The Virtual Router Redundancy Protocol is an IETF standard and defined in RFC-3768. Virtual Router Redundancy Protocol provides increased availability of network elements that serve as default routers for networks. The protocol defines an election process by which these elements select an active node to provide the next hop service. All other participating elements are standby nodes. Should the active node fail, the standby nodes will elect a new active node.
High Availability (HA) is a method to increase the ability of a service to withstand failure. HA can be deployed as a set of redundant service nodes. There are many approaches to HA configurations. One example of HA is Active-Standby. Active-Standby illustrates the mechanics of HA, but is not the only implementation. In Active-Standby, one of the service nodes can be active and provide the service. The remaining service nodes can be standby nodes ready to assume the active role should the active node fail. When the active node fails, the standby node can be expected to take over as quickly and completely as possible to minimize disruption of the service. This situation is referred to as a failover.
The phrase “failed active node” is used to designate an active node that has failed. The phrase “newly active node” is used to designate a standby node that has transitioned to active node.
An optimal failover occurs when the active node and the standby node have the same set of information. However, link-layer adjacency information tends to differ between active and standby nodes; link-layer adjacency information is acquired on an as-needed basis, and standby nodes tend not to communicate with neighbors.
As noted above, network elements can use ARP to obtain a neighbor's link-layer address from its network-layer address. The inventors have recognized that, at present, ARP does not provide a mechanism to distribute learned link-layer adjacency. When an active node in a highly available configuration fails, the link-layer adjacency it learned is lost. Before a newly active node can provide the same level of service as the failed active node, it can be required to learn the same set of link-layer adjacencies as the failed active node had.
The present inventors have recognized that this learning process can lead to a service delay until the newly active node regains that information. Additionally, the network can be burdened by a flurry of ARP request/reply transactions while the newly active node repopulates its ARP cache.
The present inventors have also recognized that a similar issue exists in an active-active high availability configuration, in which the nodes are communicating with different neighbors, and therefore have different ARP cache contents. If one node fails, the node that assumes its share of the network service burden must reacquire the failed node's link-layer adjacency information. Such a node is thus functionally equivalent to a “standby node” in the active/standby configuration.